package com.example.demo.zerenlian2;

import com.example.demo.zerenlian.AbstractChain;

import java.util.List;

/* ━━━━━━佛祖保佑━━━━━━
 *                  ,;,,;
 *                ,;;'(    社
 *      __      ,;;' ' \   会
 *   /'  '\'~~'~' \ /'\.)  主
 * ,;(      )    /  |.     义
 *,;' \    /-.,,(   ) \    码
 *     ) /       ) / )|    农
 *     ||        ||  \)
 *     (_\       (_\
 * ━━━━━━永无BUG━━━━━━
 * @author ：zjq
 * @date ：2021/4/25 0:40
 * @description: TODO   这个是模拟 sentinel 写的 责任链 接口
 * @version: V1.0
 * @slogan: 天下风云出我辈，一入代码岁月催
 */
public interface ChainInterface<E> {


    /**
     *  调用 下一个的方法
     * @param LeaveDays
     */
    void fireHandler(int LeaveDays);



    /**
     * 处理请求的方法
     *
     * @param LeaveDays
     * @return
     */
    List<E> handler(int LeaveDays);

    /**
     * 结束 请求
     *
     * @param LeaveDays
     * @return
     */
    List<E> exit(int LeaveDays);


    void fireExit(int LeaveDays);
}
